Digital watermarking is a process for modifying physical or electronic media to embed a hidden machine-readable code into the media. The media may be modified such that the embedded code is imperceptible or nearly imperceptible to the user, yet may be detected through an automated detection process. Most commonly, digital watermarking is applied to media signals such as images, audio signals, and video signals. However, it may also be applied to other types of media objects, including documents (e.g., through line, word or character shifting), software, multi-dimensional graphics models, and surface textures of objects.
Digital watermarking systems typically have two primary components: an encoder that embeds the watermark in a host media signal, and a decoder that detects and reads the embedded watermark from a signal suspected of containing a watermark (a suspect signal). The encoder embeds a watermark by subtly altering the host media signal. The reading component analyzes a suspect signal to detect whether a watermark is present. In applications where the watermark encodes information, the reader extracts this information from the detected watermark.
Several particular watermarking techniques have been developed. The reader is presumed to be familiar with the literature in this field. Particular techniques for embedding and detecting imperceptible watermarks in media signals are detailed in the assignee's U.S. Pat. Nos. 6,122,403 and 6,614,914, which are hereby incorporated by reference.
There are a number of uses of digital watermarking where it is beneficial to implement at least some portion of the embedding or reading process in hardware and firmware. Some examples include the use of an embedder or reader in cameras, cell phones, portable media players, office equipment (e.g., printers, scanners, fax machines, copiers, etc.). The complexity and memory requirements of digital watermark encoders/decoders present a number of design challenges in implementing them in hardware.
Presenting further design constraints, certain hardware applications of digital watermarking make only a small portion of a media signal available at one time for encoding/decoding operations. For example, the streaming flow of image data in office equipment hardware only makes small sections of an image available at a time (e.g., a group of scan lines of an image, sometimes referred to as a band).
This disclosure describes methods and associated hardware for implementing digital watermarking functions. One method performs an optimized FFT for watermark detection by re-using the contribution of a sub-block to several larger block FFTs of which it is a part. In one aspect of the invention, a digital watermark detector comprises a memory buffer for managing an incoming stream of data. The detector includes logic for transferring overlapping data blocks from the memory buffer to a frequency domain transform processor, such as an FFT processor. The frequency domain transform processor including logic to re-use frequency domain transform operation results for overlapping portions of the data blocks.
Another method exploits the greater data available in one dimension to perform a block FFT that is larger in the dimension where more data is available.
Another method performs filtering in the square of the Fourier magnitude domain to avoid computational complexity.
Another method uses registration and message decoding estimates for some blocks in a signal to limit digital watermark processing in other blocks. These estimates can limit the range of geometric registration processing, avoid redundant computation, and/or provide a more accurate detection by accumulating decoded information across several blocks.
In another aspect of the invention, a digital watermark detector comprises a memory buffer for a block of data, and pipelined watermark processor segments. The segments each perform different watermark detector operations in series. These segments concurrently operate on different data segments of the block of data in a processing pipeline. One embodiment employs pipelined processors for setting up data for subsequent detecting stages, such as pipelined color conversion, re-sampling, pre-filtering and frequency domain transforms. Alternative embodiments pipeline data transformations, correlation operations (e.g., matched filter operations) etc. Data flows through the processing pipeline until it reaches a critical point. At stages before the critical point, data may be dropped as not likely to include digital watermark data. This pruning of data helps reduce un-needed processing and/or false positives of watermark detection.
Further features will become apparent with reference to the following detailed description and accompanying drawings.